home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
comm
/
net
/
AMarquee49.readme
< prev
next >
Wrap
Text File
|
1999-03-02
|
11KB
|
220 lines
Short: V49.7 TCP Data Broadcast System (library & server)
Author: hparting@hem.passagen.se (Håkan Parting & Jeremy Friesner)
Uploader: hparting@hem.passagen.se (Håkan Parting)
Version: 49.7
Type: comm/net
Requires: Workbench 2.04+, Inet225 or AmiTCP3.0b+ or compatible TCP stack
Replaces: comm/net/AMarquee1.48.lha
----------------------------------------------------------------
AMARQUEE v49.7
(Released February 14th 1999)
----------------------------------------------------------------
The Problem:
You have a great idea for a killer multi-player Internet game
or multi-user net app, but it's a total pain in the @)#$* to
write all the TCP connection and data synchronization code
you'll need to get it going. So you put your idea on the
back-burner and go play "Lemmings" instead. And thus the
Amiga is deprived of a fun Internet app. D-oh! :(
The Solution: (well, okay, it's *a* solution, anyway)
AMarquee is a system that handles all of the icky information
distribution details for you, allowing you to concentrate on
coding your application, rather than on which data goes into
which socket when. AMarquee consists of a shared library and
a TCP daemon, which work together to get your data where it
needs to be. Your program calls simple amarquee.library
functions to broadcast your data, and waits on a provided
MsgPort for data from other hosts. Easy!
Note that this now (from v.49) also work with any TCP service, like HTTP,
FTP and so on.
Features of amarquee.library (the shared library/API):
- Programs written to use amarquee.library will work transparently
with Inet225, AmiTCP, Miami, or any other TCP stack that is
"AmiTCP compatible".
- Has a simple API that requires no knowledge of multithreading
techniques or socket programming to use.
- Each AMarquee connection you make automatically and transparently
starts a separate background execution thread, so your app will
never have to block while data is sent or received.
- An arbitrary number of AMarquee connections may be active at once.
- Allows you to "subscribe" to data that interests you, so that
when the data on the server is changed you will be automatically
notified. You never need to poll for anything!
- An easy mechanism for sending messages to one or many other
AMarquee clients that are logged into the same server.
- Standard Amiga wildcarding is supported in all applicable functions.
This allows you to easily and succinctly refer to one host or data
item, or many, as appropriate.
- #includes for C, C++, and PCQ Pascal are included.
- ARexx accessible. That is, ARexx scripts can use amarquee.library
through rexxamarquee.library for communications using the same API
that compiled C programs do.
- Example programs in C, C++, Pascal, and ARexx are included.
- Operation is almost totally asynchronous for efficiency, but
several easy synchronization methods are available if you need them.
- Can also be used for direct client-to-client connections and
for making inetd-launched or manually-launched daemon programs.
- Automatically detects when the computer on the other end of
the AMarquee connection has crashed or been shut down, even
on idle connections.
- Can connect to any TCP servive, eg. HTTP and FTP, and it will work in
the same easy fashion like any other AMarquee connection.
Features of AMarqueed (the AmiTCP server):
- Works with Inet225, AmiTCP, Miami, or any other TCP stack
that is "AmiTCP compatible".
- Fully multithreaded design, with one server process per connection.
- Re-entrant code, to minimize memory usage.
- Data is stored in a filesystem-like tree structure for simplicity,
flexibility and efficiency. Each client gets its own "home directory"
that it may write to or read from, and each client may also
read from the "home directories" of other clients.
- Efficient design minimizes CPU usage, net bandwidth, and execution time.
- Limits may be put on memory usage, number of connections, and/or
which clients or apps may connect. Only serve the hosts and apps
you want to serve!
- Supports data streaming to one or many clients at once.
- Data streaming and synchronization features let you be sure your
data was read by all interested hosts before you update it again.
- Automatically detects and eliminates "dead" connections (e.g.
if the client computer was shut down without quitting politely)
- Server may be administered remotely by clients with "privileged"
status.
WHAT'S NEW IN VERSION 49.6:
( "-" = new feature, "*" = bug fix)
V49.7 : (Public Release 14-Feb-1999) (amarquee.library v49.6, AMarqueed v49.7)
* The fd-file and the inline include file for GCC had errors.
* Race condition in AMarqueed fixed. Could only happen when no host were
connected to the server, and then suddenly two or more hosts connected to
the server in exactly the same moment. The two connecting hosts would then
be connected to two seperate isolated server instances running on the server
computer.
If those hosts were connecting with for example AmiComSys one of them would
only see himself in the client list.
- Added AMARQUEED_RESTRICTBROWSE and AMARQUEED_ALLOWBROWSE @{"environment variables" link UsingAMarqueed}
- The library was not updated in this release.
V49.6 : (Public Release 16-Jan-1999) (amarquee.library v49.6)
- AMarquee.library development taken over by Håkan Parting after Jeremy had ceased
development for Amiga.
* Fixed major bug in AMarqueed:
In certain circumstances it was possible to get attributes one
was not subscribing to. Eg. If a client subscribed to /happyhost.com/QAmiTrack/name
and /nothappyhost.com/QAmiTrack/comment, one would get 'comment' from happyhost.com
and 'name' from nothappyhost.com in addition to what one wanted to receive.
If you subscribed on /localhost/QAmiTrack/comment and /qamitrack.tibb.at/QAmiTrack/comment.
You would receive two QMessages when one of these clients modify its data.
(Thanks to myself for fixing this! :)
* Fixed certain things to make it compile right with DICE 3.0, instead of former DICE 2.0
compilation.
* Exchanged Forbid() and Permit() 's with Semaphores, so the multitasking won't get disabled
in unnecessary situations.
- JAVA 1.0.2 version of AMarquee, called JAMarquee, available at
http://hem.passagen.se/hparting/jamarquee/
- Moved the Arexx piece of code into a new library named, rexxamarquee.library. Use it instead
of amarquee.library. The lib-offset is now -30 as with any other ARexx-function-library.
- Added QNewSocketSession(), QNewSocketSessionAsync() and QNewSocketServerSession() functions
to the library.
- Added QSendRawOp() function to the library.
- Added QSetKeyAccessOp() function to the library.
- Added support for access restrictions on the keys in AMarqueed (for use with
QSetKeyAccessOp()).
* Fixed memory leakage that happened every time the client got a ping from the server :)
- Added QGetHostName() and QGetProgName() functions to the library.
1.48 : (Public Release 10-Apr-1998) (amarquee.library v48)
* Both amarquee.library and AMarqueed could crash on 68000
or 68010 processors, as they didn't always keep their data
aligned to word boundaries. Fixed. (Thanks to Mike
Constantine for his help with this!)
============================= Archive contents =============================
Original Packed Ratio Date Time Name
-------- ------- ----- --------- -------- -------------
1233 595 51.7% 10-Apr-98 12:24:44 AMarquee.info
194705 53729 72.4% 14-Feb-99 18:19:54 +amarquee.guide
1542 1096 28.9% 10-Apr-98 12:24:46 +AMarquee.guide.info
23616 12854 45.5% 16-Jan-99 18:18:26 +amarquee.library
23624 12885 45.4% 16-Jan-99 18:18:44 +amarquee.library.inet225
152 152 0.0% 16-Jan-99 18:57:16 +amarquee.library.inet225.sig
152 152 0.0% 16-Jan-99 18:52:32 +amarquee.library.sig
7461 3317 55.5% 14-Feb-99 18:25:16 +AMarquee.readme
835 268 67.9% 10-Apr-98 12:24:44 +AMarquee.readme.info
46412 23901 48.5% 14-Feb-99 18:11:16 +AMarqueed
46256 23823 48.4% 14-Feb-99 18:11:16 +AMarqueed.inet225
151 151 0.0% 14-Feb-99 18:15:36 +AMarqueed.inet225.sig
152 152 0.0% 14-Feb-99 18:15:12 +AMarqueed.sig
4123 1604 61.0% 10-Apr-98 12:24:48 +EditTextFile.rexx
10964 6337 42.2% 16-Jan-99 18:20:06 +amarqueedebug
7153 2394 66.5% 16-Jan-99 18:20:06 +amarqueedebug.c
6753 2323 65.6% 10-Apr-98 12:24:50 +amarqueedebug.cpp
7058 2305 67.3% 16-Jan-99 18:20:04 +amarqueedebug.rexx
12920 7206 44.2% 16-Jan-99 18:20:04 +AMarqueeDebugMultiThread
9537 3191 66.5% 16-Jan-99 18:20:04 +AMarqueeDebugMultiThread.c
9200 5495 40.2% 16-Jan-99 18:20:06 +AMarqueeHost
4175 1563 62.5% 16-Jan-99 18:20:06 +amarqueehost.c
6383 2116 66.8% 16-Jan-99 18:20:04 +amarqueehost.rexx
11868 6923 41.6% 16-Jan-99 18:20:06 +AMarqueeServer
5307 1924 63.7% 16-Jan-99 18:20:06 +AMarqueeServer.c
10228 6053 40.8% 16-Jan-99 18:20:06 +amarqueesocketdebug
5870 2209 62.3% 16-Jan-99 18:20:06 +amarqueesocketdebug.c
8808 5388 38.8% 16-Jan-99 18:20:06 +amarqueesockethost
3590 1516 57.7% 16-Jan-99 18:20:06 +amarqueesockethost.c
7400 4731 36.0% 16-Jan-99 18:20:06 +BounceCount
2910 1167 59.8% 16-Jan-99 18:20:06 +BounceCount.c
522 275 47.3% 16-Jan-99 18:20:06 +dmakefile
494 262 46.9% 10-Apr-98 12:24:52 +dmakefile.bak
2431 1104 54.5% 16-Jan-99 18:20:06 +killclients.rexx
10408 6410 38.4% 16-Jan-99 18:20:06 +MiniIRC
6379 2171 65.9% 16-Jan-99 18:20:06 +MiniIRC.c
3336 1984 40.5% 16-Jan-99 18:20:06 +PascalTest
1139 502 55.9% 16-Jan-99 18:20:06 +PascalTest.p
6984 4444 36.3% 16-Jan-99 18:20:06 +RemoveTest
2546 1035 59.3% 16-Jan-99 18:20:06 +RemoveTest.c
9324 5734 38.5% 16-Jan-99 18:20:06 +SillyGame
8214 2586 68.5% 16-Jan-99 18:20:06 +SillyGame.c
7404 4711 36.3% 16-Jan-99 18:20:06 +StreamCheck
3132 1242 60.3% 16-Jan-99 18:20:06 +StreamCheck.c
7276 4628 36.3% 16-Jan-99 18:20:06 +StreamGen
2612 1090 58.2% 16-Jan-99 18:20:06 +streamgen.c
7456 4717 36.7% 16-Jan-99 18:20:06 +SyncTest
3250 1302 59.9% 16-Jan-99 18:20:06 +SyncTest.c
2649 1169 55.8% 16-Jan-99 18:20:06 +sysmessage.rexx
5301 1358 74.3% 14-Feb-99 18:12:22 +AMarquee_protos.h
1584 507 67.9% 14-Feb-99 18:11:52 +AMarquee_lib.fd
7072 1265 82.1% 14-Feb-99 18:12:00 +AMarquee.h
4161 1701 59.1% 16-Jan-99 18:19:38 +AMarquee.h
2177 522 76.0% 16-Jan-99 18:19:38 +AMarquee_pragmas.h
409 217 46.9% 16-Jan-99 18:19:38 +AMarquee.h
12212 2878 76.4% 16-Jan-99 18:19:38 +Session.h
24313 6008 75.2% 16-Jan-99 18:28:12 +Install_AMarquee
612 329 46.2% 10-Apr-98 12:24:48 +Install_AMarquee.info
7944 2205 72.2% 16-Jan-99 18:19:32 +AMarquee.i
5152 710 86.2% 14-Feb-99 18:12:36 +AMarquee.lib
12836 6662 48.0% 16-Jan-99 18:22:08 +rexxamarquee.library
152 152 0.0% 16-Jan-99 18:58:14 +rexxamarquee.library.sig
-------- ------- ----- --------- --------
650019 267400 58.8% 18-Feb-99 21:31:50 62 files